1. Field of the Invention
The present invention relates to load distribution for a multinode server system. More particularly, the present invention relates to a multinode server system, a load distribution method for a multinode server system, a resource management server, and a program. Coordination of the foregoing provide the processing to specific client devices using a plurality of servers.
2. Description of Related Art
In recent years, the development of network and computer techniques has enabled information to be provided to a plurality of client devices via a network, as well as services to be provided using Common Gateway Interface (CGI), Servlet, game applications and other server applications. Upon receipt of access requests from several client devices at irregular and unpredictable intervals, servers need to execute processing complying with a request from each client device, and return a result of the execution to the client device.
Further, servers have provided wide-ranging services, including information search services, browsing services, game amusement providing services, etc. Among them, the game amusement providing service provides the stand-alone type game letting a player play a game on a screen specific to each user, as well as the type enabling concurrent connection of a lot of players to a game server so that individual players can share a huge virtual space and proceed with a game in coordination with each other while collaborating.
A game server providing the above-described game amusement providing service will be exposed to an environment different from that for a server providing an information search or a browsing service. That is, the server providing an information search service or a browsing service allocates a thread or the like in response to a request from a client and simply returns the processing result to the client that issued the request. In this case, although collaboration may be performed among other clients, returning the processing result in collaboration to all or the majority of the clients is an extremely rare case.
On the other hand, a game server needs to display, to clients, the processing result of a game application such as match-up, life, or investment in a virtual space of a game space while allowing the players to collaborate with each other. Further, in recent years, the game contents have become increasingly complicated and diversified, and the number of users for the concurrent connection has been also increased, so that along with a larger scale of the game environment, processing on the server side has been increasingly requested to be complicated as well as to be speeded up and have higher reliability.
From the viewpoints of maintainability for backup when a server is down or for server expandability in addition to the above-described throughput and the diversification of the network environment, a plurality of servers are connected by a local area network (LAN), so that the game server is configured using mutually connected server nodes, where the servers function as LAN nodes.
When the game server is configured by a plurality of server nodes, the communication speed via the LAN will be a transfer rate of 1 Gbps or less, which depends on the network interface card (NIC) or the like, and therefore it will be slower than the transfer rate within a server. Further, the LAN deals with not only the application processing between servers but also the information communication for network communication via a hub, a router, a DNS server and the like. When the transfer rate of the network infrastructure constituting the LAN is increased, the outgoing or incoming data via the LAN also increases accordingly, and therefore there is a problem that such an increase in the transfer rate does not lead to the improvement of the transfer efficiency of the data communication required for application execution.
In other words, when a plurality of servers are connected as LAN nodes, there is a problem that the process efficiency of a so-called multinode server system configured by mutually connecting a plurality of servers via a LAN cannot be improved efficiently unless the data transfer concerning the application execution is made efficient.
In the case of an application such as a game, the congestion of a specific region (hereinafter referred to as a “mesh”) in the virtual space will always vary depending on the time, the progress of a game, the preference of a user, and the game contents. Thus, how to distribute the computational resource among server nodes will be a big issue. If the computational resource cannot be distributed appropriately among the server nodes, the limited performance of a single server node (e.g., the number of players connectable concurrently) cannot enable it to respond to a request from the player, resulting in a so-called processing failure in which something goes wrong with the processing of the game.
Additionally, even if the system has a performance that can sufficiently respond to the collaboration between the respective meshes as long as the data is transmitted within a single server, the communication efficiency between the meshes may be degraded due to data congestions in the LAN, which may lead to a decrease in the communication efficiency between the meshes, resulting, for example, in disturbance of the collaboration in the virtual space and the loss of data.
If the arrangement of the computational resource is changed during the game, it takes time to select a server node that can manage the processing, allocate the computational resource and the like. Further, when accessing the virtual space, the clients do not always access the vicinity of the same mesh concurrently. Thus, when the computational resource is rearranged, since a mesh or a server exists with the processing load being closer to overflow, response to a client that accesses the vicinity of the mesh without a high throughput is limited.
A game system allowing a plurality of players to play a game is well known. For instance, Japanese Unexamined Patent Publication (Kokai) No. 2005-234633 (Patent Document 1) discloses a service expansion method, in which a plurality of servers provide their respective services, and these services construct and couple the virtual world freely, thus enabling free movement within the virtual world. According to Patent Document 1, the coupled virtual world is constructed while distributing their processing over the individual servers in predetermined units, and the result thereof is provided to clients. In Patent Document 1, a virtual community is allocated to the servers, and if a client goes beyond the interface set for the server, information on the client is passed to the server that manages a new virtual community, thus enabling the processing in the new virtual community.
In Patent Document 1, however, a specific virtual community is allocated to a server, and the client decides which virtual community will be the destination, thus deciding which server will be in charge of the processing. Thus, it is impossible in Patent Document 1 to change the server in charge of the processing in response to the congestion state of the virtual community. Further, Japanese Unexamined Patent Publication (Kokai) No. H09 (1997)-325991 (Patent Document 2) discloses a technique enabling an increase in the number of participants, and in order to reduce the strangeness that might occur when the virtual world is divided into regions, a server is placed at each of the adjacent regions so that small regions overlap with each other between the adjacent regions.
Japanese Unexamined Patent Publication (Kokai) No. H11 (1999)-039472 (Patent Document 3) discloses a process of allocating a space and a server to a user in accordance with a distance between a fixed point and a new user's location, so as to reduce the computational amount for collision inspection or the like that is required when the user moves. Japanese Unexamined Patent Publication (Kokai) No. H11 (1999)-288394 (Patent Document 4) discloses, in order to solve the problem of an increase in data exchange amount between game servers caused by an increase in the number of participants to the game, a process of limiting game terminals capable of exchanging a message in accordance with a communication distance between the game terminals. Japanese Unexamined Patent Publication (Kokai) No. H11 (1999)-328124 (Patent Document 5) discloses a process of alleviating the load of rendering the virtual space, and Japanese Unexamined Patent Publication (Kokai) No. 2000-285064 (Patent Document 6) discloses a process of providing a user information data base so as to ensure the unity of a user and a character in the virtual space service, thus improving operability.
As described above, the environment includes a plurality of systems providing a virtual space using a plurality of servers. However, a multinode server system, a load distribution method for the multinode server system, a resource management server, and a program are still required, which are capable of distributing the hardware resource of a plurality of servers so as to respond to an increase in the number of clients and the overhead of the processing in a mesh by effectively distributing the resource of each server in the process of meshes in the virtual space provided by the plurality of servers.
Also required are a load distribution method for a multinode server system, a resource management server, and a program, by which reliability can be improved by minimizing the occurrence of the inconvenience of a so-called “processing failure” causing the disability of the processing to a specific client in an environment where the number of clients participating in the virtual space always varies depending on the time, their preferences, and the contents of the virtual space.
Further required are a load distribution method for a multinode server system, a resource management server, and a program, which are capable of effectively utilizing the resource of the multinode server system constructed by a plurality of servers while distributing the load so that the maximum throughput of the server system is not limited to a specific server's processing ability, thus maximizing the processing efficiency of the multinode server system.